package com.ruoyi.cderp.service.impl;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Random;

import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.cderp.mapper.SettleOutItemMapper;
import com.ruoyi.cderp.domain.SettleOutItem;
import com.ruoyi.cderp.service.ISettleOutItemService;

import static com.ruoyi.common.utils.SecurityUtils.getLoginUser;

/**
 * 支出项目Service业务层处理
 *
 * @author ruoyi
 * @date 2025-03-05
 */
@Service
public class SettleOutItemServiceImpl implements ISettleOutItemService
{
    @Autowired
    private SettleOutItemMapper settleOutItemMapper;

    /**
     * 查询支出项目
     *
     * @param id 支出项目主键
     * @return 支出项目
     */
    @Override
    public SettleOutItem selectSettleOutItemById(String id)
    {
        return settleOutItemMapper.selectSettleOutItemById(id);
    }

    /**
     * 查询支出项目列表
     *
     * @param settleOutItem 支出项目
     * @return 支出项目
     */
    @Override
    public List<SettleOutItem> selectSettleOutItemList(SettleOutItem settleOutItem)
    {
        return settleOutItemMapper.selectSettleOutItemList(settleOutItem);
    }

    /**
     * 新增支出项目
     *
     * @param settleOutItem 支出项目
     * @return 结果
     */
    @Override
    public int insertSettleOutItem(SettleOutItem settleOutItem)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String formattedDate = sdf.format(new Date());
        Random random = new Random();
        int randomNumber = 10000000 + random.nextInt(90000000); // 生成8位数随机数
        settleOutItem.setId("18" + formattedDate+randomNumber);
        //角色
        settleOutItem.setCreateBy("系统管理员");
        //编号
        settleOutItem.setCreateById("1");
        settleOutItem.setCreateTime(DateUtils.getNowDate());
        return settleOutItemMapper.insertSettleOutItem(settleOutItem);
    }

    /**
     * 修改支出项目
     *
     * @param settleOutItem 支出项目
     * @return 结果
     */
    @Override
    public int updateSettleOutItem(SettleOutItem settleOutItem)
    {
        //角色
        settleOutItem.setUpdateBy("系统管理员");
        //编号
        settleOutItem.setUpdateById("1");
        settleOutItem.setUpdateTime(DateUtils.getNowDate());
        return settleOutItemMapper.updateSettleOutItem(settleOutItem);
    }

    /**
     * 批量删除支出项目
     *
     * @param ids 需要删除的支出项目主键
     * @return 结果
     */
    @Override
    public int deleteSettleOutItemByIds(String[] ids)
    {
        return settleOutItemMapper.deleteSettleOutItemByIds(ids);
    }

    /**
     * 删除支出项目信息
     *
     * @param id 支出项目主键
     * @return 结果
     */
    @Override
    public int deleteSettleOutItemById(String id)
    {
        return settleOutItemMapper.deleteSettleOutItemById(id);
    }
}
